package tests

import org.scalatest._
import tp1._

class CorteAnualTest extends FlatSpec {

  
  var cursada = new Aprobada()
  val orga = new Materia("Orga")
  cursada.initialize(7, orga, new Curso(new Docente("profe")))
  var aprobada = new Aprobada()
  var desaprobada = new Desaprobada()
  var materia = new Materia("Persistencia")
  materia.initialize(2000, 1)
  var materia1 = new Materia("Persistencia")
  materia1.initialize(2000, 1)
  aprobada.initialize(8, materia, new Curso(new Docente("profe")))
  desaprobada.initialize(2, materia1, new Curso(new Docente("profe")))
 

  var lista: List[Cursada] = List(aprobada, desaprobada)

  var corteAnual = new CorteAnual(lista)
  
  "un corte anual" should "estar bien seteado" in {

    assert(corteAnual.getCursadas.size == 2)

  }

  "un corte anual" should "devolver 3 en sus cursadas aprobadas" in {

    assert(corteAnual.cursadasAprobadas == 1)
  }

  "un corte anual" should "devolver 0 en sus cursadas abandonadas" in {

    assert(corteAnual.cursosAbandonados == 0)
  }
  
  "un corte anual" should "devolver 50.0 en los cursos iniciados sobre aprobados" in {
    assert(corteAnual.cursosAprobadoSobreIniciados == 50.0)
  }

  "un corte anual" should "devolver 5.0 en su promedio con aplazos" in {
    assert(corteAnual.promedioConAplazos == 5.0)
  }

  "un corte anual" should "devolver 7.33 en su promedio sin aplazos" in {
    assert(corteAnual.promedioSinAplazos.toInt == 8)
  }

  "un corte anual" should "devolver una tabla de notas" in {
    var tabla = corteAnual.tablaDeNotas
    assert(tabla(1) == 0)
    assert(tabla(2) == 1)
    assert(tabla(3) == 0)
    assert(tabla(4) == 0)
    assert(tabla(5) == 0)
    assert(tabla(6) == 0)
    assert(tabla(7) == 0)
    assert(tabla(8) == 1)
    assert(tabla(9) == 0)
    assert(tabla(10) == 0)

  }

}